/*
 *  RenderTarget.h
 *  glare
 *
 *  Created by sunjun on 11-6-14.
 *  Copyright 2011 sunstdio. All rights reserved.
 *
 */

//////////////////////////////////////////////////////////////////////////

#ifndef __RenderTarget__
#define __RenderTarget__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

#include <Render.h>

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN(Render)

//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented RenderTarget interface.
	class RenderTarget
	{
	public:		
		// constructor
		RenderTarget();
		
		// destructor
		virtual ~RenderTarget();

    // build the render target
    VOID Build(const class BaseTexture* color, const class BaseTexture* depth);

    // bind the render target
    VOID Bind();

	private:
		U32	mFBO, mRBO;
		const class BaseTexture* mColorPtr;
    const class BaseTexture* mDepthPtr;
	};

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __RenderTarget__

//////////////////////////////////////////////////////////////////////////